跳到主要内容

常用 kubectl 命令记录

kubectl 命令是什么?

kubectl 是 kubernetes 集群的命令行工具,通过它能够对集群本身进行管理,并能够在集群上进行容器化应用的安装和部署。

kubectl 命令的语法如下:

kubectl [command] [type] [name] [flags]
  • command:指定要对资源执行的操作,比如 create、get、delete。
  • type:指定资源的类型,比如 deployment、pod、service。
  • name:指定资源的名称,名称大小写敏感。
  • flags:指定额外的可选参数。

示例:

# 查看所有的 pod
kubectl get pods

# 查看某个 pod
kubectl get pod pod_name

# 查看某个 pod,以 yaml 格式展示结果
kubectl get pod pod_name -o yaml

常用操作(command)

kubernetes 允许对资源进行多种操作,可以通过 --help 查看详细的操作命令:

kubectl --help

经常使用的操作如下所示:

命令命令作用
create创建一个资源
edit编辑一个资源
get获取一个资源
patch更新一个资源
delete删除一个资源
explain展示资源文档

运行和调试:

命令命令作用
run在集群中运行一个指定的镜像
expose暴露资源为Service
describe显示资源内部信息
logs输出容器在Pod中的日志
attach进入运行中的容器
exec执行容器中的一个命令
cp在Pod内外复制文件
rollout管理资源的发布
scale扩(缩)容Pod的数量
autoscale自动调整Pod的数量

其它命令:

命令命令作用
apply通过文件对资源进行配置
label更新资源上的标签
cluster-info显示集群信息
version显示当前Client和Server的版本

资源类型(type)

kubernetes 中所有的内容都抽象为资源,可以通过下面的命令进行查看:

kubectl api-resources

经常使用的资源如下所示:

集群级别资源:

资源名称缩写资源作用
nodesno集群组成部分
namespacesns隔离Pod

Pod资源:

资源名称缩写资源作用
Podspo装载容器

Pod资源控制器:

资源名称缩写资源作用
replicationcontrollersrc控制Pod资源
replicasetsrs控制Pod资源
deploymentsdeploy控制Pod资源
daemonsetsds控制Pod资源
jobs控制Pod资源
cronjobscj控制Pod资源
horizontalpodautoscalershpa控制Pod资源
statefulsetssts控制Pod资源

服务发现资源:

资源名称缩写资源作用
servicessvc统一Pod对外接口
ingressing统一Pod对外接口

存储资源:

资源名称缩写资源作用
volumeattachments存储
persistentvolumespv存储
persistentvolumeclaimspvc存储

配置资源:

资源名称缩写资源作用
configmapscm配置
secrets配置

使用示例

# 创建一个 namespace
kubectl create namespace dev

# 获取 namespace
kubectl get namespace
kubectl get ns

在刚才创建的 namespace 下创建并运行一个 Nginx 的 Pod

kubectl run nginx --image=nginx:1.17.1 -n dev

查看名为 dev 的 namespace 下的所有 Pod,如果不加 -n,默认就是 default 的 namespace

kubectl get pods -n dev

删除指定 namespace 下的指定 Pod

kubectl delete pod nginx -n dev

删除指定的 namespace

kubectl delete namespace dev